package com.lovi.notepaper.dao;

import android.view.ViewDebug;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;

import com.lovi.notepaper.entities.Note;

import java.util.List;
/*
NoteDao 是数据访问对象，负责定义对笔记的增删改查操作
 */
@Dao
public interface NoteDao {
    //查询所有数据
    @Query("select * from note order by id desc")/*这样做就是把最新的给放到前面来了*/
    List<Note> getAllNotes();


    //更新与插入
    /*
    当我们在向数据库中插入一条新数据时，如果这条数据的主键已经存在，那么 Room 会根据 OnConflictStrategy.REPLACE
    的策略将新数据更新到旧数据的位置，从而实现了更新操作。因此，这个注解可以用于实现插入或更新（Insert or Update）操作。
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)/*如果插入的数据已经存在，则使用新数据替换旧数据。*/
    void insertNote(Note note);

    //删除数据
    @Delete
    void deleteNote(Note note);
}
